package com.openspring.platform.service;

import java.util.List;
import java.util.Map;

import com.openspring.framework.tree.Node;

public interface SecurityService {

	/**
	 * 根据资源主键得到与之关联的操作
	 * @param resourceId 资源主键
	 * @return
	 */
	List<Map<String, Object>> findResourceOperators(Long resourceId);
	
	/**
	 * 保存资源和操作的关联信息
	 * @param resourceId 资源主键
	 * @param operatorIds 操作主键数组
	 */
	void saveResourceOperators(Long resourceId, Long...operatorId);
	
	/**
	 * 根据组主键得到该组的操作权限
	 * @param roleId 组主键
	 * @return
	 */
	List<Map<String, Object>> findOperatorPermissions(Long roleId);
	
	/**
	 * 根据组主键得到该组的操作权限树,包括不属于该组的权限
	 * @param roleId 组主键
	 * @return
	 */
	Node getOperatorPermissionsTree(Long roleId);
	
	/**
	 * 保存组操作权限
	 * @param roleId 组主键
	 * @param resourceIds 资源主键数组
	 * @param operatorIds 操作主键数组
	 */
	void saveOperatorPermissions(Long roleId, Long[] resourceIds, Long[] operatorIds);
}
